Considere os seguintes trechos de programas:
# peça A
print(something)
# peça B
print("something")
Tente agora:
Descreva resumidamente as diferenças, se houver, entre essas duas partes do código e como o Python as avalia.
something
e exibir seu valor (se essa variável não tiver sido definida, o Python levantará um NameError
). O segundo imprimirá a string "something
, que resultará nas letras something
sendo exibidas na tela, literalmente.
Considere os seguintes trechos de programas:
# peça A
if condition1:
print('meow')
if condition2:
print('woof')
else:
print('quack')
# peça B
if condition1:
print('meow')
elif condition2:
print('woof')
else:
print('quack')
# peça C
if condition1:
print('meow')
else:
if condition2:
print('woof')
else:
print('quack')
Tente agora:
Descreva resumidamente as diferenças, se houver, entre essas duas partes do código e como o Python as avalia.
A peça "A" consiste de duas condicionais separadas:
'meow'
se a condition1
for satisfeita e não fará nada de outra forma.'woof'
ou 'quack'
, dependendo se a condition2
for satisfeita.
Portanto, a peça "A" pode resultar na impressão de um ou dois valores na tela.As peças "B" e "C" se comportam de forma idêntica entre si (mas de forma diferente de "A"). Eles imprimirão exatamente um valor:
'meow'
se a condition1
for satisfeita,'woof'
se a condition2
for satisfeita, mas a condition1
não for, ou'quack'
se nenhuma das condições for satisfeita.Considere os seguintes trechos de programas:
# peça A
x = [1, 2, 3]
x = x + [4]
y = x
x[0] = 7
# peça B
x = [1, 2, 3]
x = x.append(4)
y = x
x[0] = 7
# peça C
x = [1, 2, 3]
x.append(4)
y = x
x[0] = 7
Tente agora:
Descreva resumidamente as diferenças, se houver, entre essas duas partes do código e como o Python as avalia.
Na peça "A", a linha x = x + [4]
cria uma nova lista com 1
, 2
, 3
e 4
dentro dela. A linha y = x
dá a esta lista um segundo nome, e fazer x[0] = 7
modifica essa lista (de forma que tanto x
quanto y
sofrem as mudanças).
A peça "C" é semelhante, exceto que, em vez de fazer uma nova lista contendo 1
, 2
, 3
e 4
, um 4
é adicionado à lista criada na primeira linha. Da mesma forma que a peça "A", y
e x
apontam para a mesma lista na memória e, portanto, ambos veem a mudança de x[0] = 7
.
A peça "B" é, de certa forma, a diferentona. Conforme escrito, esse código produzirá um erro. A linha x = x.append(4)
resultará no nome x
sendo associado a None
, portanto, tentar executar x[0] = 7
resultará em um TypeError
.